#include "mainmenuwidget.h"
#include "mainwindow.h"
#include "characterselectdialog.h"
#include <QApplication>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);

    // 设置全局字体
    QFont font("微软雅黑", 12);
    QApplication::setFont(font);

    // 初始化界面对象
    MainMenuWidget menu;
    MainWindow gameWindow;
    gameWindow.hide();  // 初始隐藏游戏窗口

    // 连接开始游戏信号
    QObject::connect(&menu, &MainMenuWidget::startGameRequested, [&]() {
        CharacterSelectDialog dialog;
        if (dialog.exec() == QDialog::Accepted) {
            gameWindow.startGameWithCharacter(dialog.selectedId());
            menu.hide();

            // 配置游戏窗口
            gameWindow.resize(1200, 900);    // 设置窗口大小
            gameWindow.show();                // 正常显示窗口
            gameWindow.setWindowState(Qt::WindowActive);  // 激活窗口
        }
    });

    // 连接返回主菜单信号
    QObject::connect(&gameWindow, &MainWindow::returnToMainMenu, [&]() {
        gameWindow.cleanupGame();  // 触发音乐恢复
        gameWindow.hide();
        gameWindow.cleanupGame();  // 新增清理函数
        menu.show();
    });

    // 显示主菜单
    menu.show();

    return a.exec();
}
